package com.erp.gather.controller;

import cn.hutool.core.lang.Dict;
import com.erp.gather.config.ChatGptConfig;
import com.erp.gather.mapper.ErpCollectProductExpandMapper;
import com.erp.gather.mapper.ErpCollectProductMapper;
import com.erp.gather.utils.ChatGptUtils;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.JsonUtils;
import com.ruoyi.common.core.utils.oldUtils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestTemplate;

@RestController
@RequestMapping("/gather/chatgpt")
public class ChatGptController {

	@Autowired
	RestTemplate restTemplate;
	@Autowired
	ChatGptConfig chatGptConfig;

	/**
	 * 获取标题关键词
	 * 
	 * @return
	 */
	@GetMapping("/extractKeyWords")
	public R<Object> extractKeyWords(String words) {
		if (ChatGptUtils.isContainChinese(words))
			return R.fail("请先翻译标题");
		String data = ChatGptUtils.extractTitle(words);
		if(StringUtils.isEmpty(data))
			return R.fail("获取标题关键词失败");
		return R.ok("", data);
	}

	/**
	 * 获取详情关键词
	 * 
	 * @return
	 */
	@GetMapping("/extractDescription")
	public R<Object> extractDescription(String words) {
		if (ChatGptUtils.isContainChinese(words))
			return R.fail("请先翻译详情");
		String data = ChatGptUtils.extractDescription(words);
		if(StringUtils.isEmpty(data))
			return R.fail("获取详情关键词失败");
		return R.ok("", data);
	}

	/**
	 * 翻译
	 * 
	 * @return
	 */
	@GetMapping("/translate")
	public R<Object> translate(String words) {
		String data = ChatGptUtils.translate(words);
		if(StringUtils.isEmpty(data))
			return R.fail("翻译失败");
		return R.ok("", data);
	}
	/**
	 * 翻译
	 * 
	 * @return
	 */
	@PostMapping("/translate")
	public R<Object> translatePost(@RequestBody String words) {
		Dict parseMap = JsonUtils.parseMap(words);
		String data = ChatGptUtils.translate(parseMap.getStr("words"));
		if(StringUtils.isEmpty(data))
			return R.fail("翻译失败");
		return R.ok("", data);
	}

	/**
	 * 根据标题关键字生成标题
	 * 
	 * @return
	 */
	@GetMapping("/createTitle")
	public R<Object> createTitle(String words) {
		if (ChatGptUtils.isContainChinese(words))
			return R.fail("请先翻译标题关键字");
		String data = ChatGptUtils.createTitle(words);
		if(StringUtils.isEmpty(data))
			return R.fail("生成关键词失败");
		return R.ok("", data);
	}

	/**
	 * 根据详情关键字生成详情
	 * 
	 * @return
	 */
	@GetMapping("/createProductDescription")
	public R<Object> createProductDescription(String words) {
		if (ChatGptUtils.isContainChinese(words))
			return R.fail("请先翻译详情关键字");
		String data = ChatGptUtils.createProductDescription(words);
		if(StringUtils.isEmpty(data))
			return R.fail("生成详情失败");
		return R.ok("", data);
	}

}
